﻿/* Colors */
@brand-color: rgb(37, 107, 147);
@brand-color-light: lighten(@brand-color, 10%);
@brand-color-dark: darken(@brand-color, 10%);
@brand-off-color: rgba(70, 185, 70, .7);
@brand-background: rgba(240, 240, 240, .8);
@brand-off-color-light: lighten(@brand-off-color, 5%);
@brand-off-color-dark: darken(@brand-off-color, 5%);
@shadow-color: gray;
@text-color: rgb(57, 80, 106);
@text-color-light: rgb(218, 230, 243);

/* Mixins */
.box-shadow (@x: 0, @y: 0, @optionalBlur: 1px, @optionalSpread: 0, @color: @shadow-color) {
  -moz-box-shadow: @arguments;
  -webkit-box-shadow: @arguments;
  box-shadow: @arguments; 
}

.text-shadow (@x: 1px, @y: 1px, @blur: 3px, @color: @shadow-color) {
	-webkit-text-shadow: @arguments;
    text-shadow: @arguments;
}

.text-overflow () { 
	white-space: nowrap;
    -ms-text-overflow: ellipsis;
    -o-text-overflow: ellipsis;
    text-overflow: ellipsis;
    overflow: hidden;
}

.border-radius(@radius: 5px) {
	-moz-border-radius: @radius;
    -webkit-border-radius: @radius;
    border-radius: @radius;
}

.stylish-font() {
	font-family: strumpf-std, sans-serif;
}

.legible-font() {
    font-family: 'Share Tech', sans-serif;
}

.gradient(@start, @end) {
    background: @start; /* Old browsers */
    background: -moz-linear-gradient(top, @start 0%, @end 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,@start), color-stop(100%,@end)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top,  @start 0%, @end 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top,  @start 0%, @end 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top,  @start 0%, @end 100%); /* IE10+ */
    background: linear-gradient(to bottom,  @start 0%, @end 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='@start', endColorstr='@end',GradientType=0 ); /* IE6-9 */
}

.gradient-angled(@start, @end) {
    @transition: darken(@start, 25%);
    background: @start; /* Old browsers */
    background: -moz-linear-gradient(-45deg,  @start 1%, @transition 49%, @end 51%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, right bottom, color-stop(1%,@start), color-stop(49%,@transition), color-stop(51%,@end)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(-45deg,  @start 1%,@transition 49%,@end 51%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(-45deg,  @start 1%,@transition 49%,@end 51%); /* Opera 11.10+ */
    background: -ms-linear-gradient(-45deg,  @start 1%,@transition 49%,@end 51%); /* IE10+ */
    background: linear-gradient(135deg,  @start 1%,@transition 49%,@end 51%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='@start', endColorstr='@end',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */

}

.transition(@property, @time, @timingFunction: linear, @delay: 0)
{
    -moz-transition: @property @time @timingFunction @delay;
    -o-transition: @property @time @timingFunction @delay;
    -webkit-transition: @property @time @timingFunction @delay;
    transition: @arguments;
}

/* Styles */
body
{
    background-image: url('/content/images/background.jpg');
    background-repeat: repeat-x; 
    background-color: darken(@brand-background, 5%);
    width: 100%;
}

.page {
    width: 95%;
    margin-left: auto;
    margin-right: auto;
	margin-top: 20px;
}

.control-panel
{
    padding-top: 10px;
    padding-bottom: 10px;
    height: 75px;
    text-decoration: none;
    text-align: center;
    .box-shadow(0, 2px, 4px, 0, @brand-off-color);
    .gradient(fade(@brand-color-light, 70%), fade(@brand-color-dark, 70%));

    &:focus
    {
        text-decoration: none;
    }


    .new-station
    {
        margin-top: 10px;
        margin-left: 50px;

        span
        {
            .gradient(@brand-color, @brand-color-light);
            color: white;
            border-color: @brand-color;
        }

        input
        {
            .transition(min-width, .2s, linear);

            &:focus
            {
                min-width: 210px;
            }

            font-family: 'Share Tech', sans-serif;
        }
    }

    .song-control
    {
        display: inline-block;
        padding: 7px 10px 10px 10px;
        color: lighten(@text-color-light, 10%);
        width: 40px;
        height: 40px;
        font-size: 20px;
        vertical-align: middle;
        margin-left: 5px;
        .border-radius(20px);
        background-color: lighten(@brand-color-light, 10%);
        //.gradient-angled(lighten(@text-color-light, 10%), darken(@text-color-light, 5%));
        .box-shadow(0, 0, 1px, 3px, @brand-color-dark);
        .transition(all, 0.2s);

        &:hover
        {
            color: lighten(@text-color-light, 15%);
            background-color: lighten(@brand-off-color, 5%);
            .box-shadow(0, 0, 5px, 3px, @brand-color);
        }

        i
        {
            .text-shadow(0px, 1px, 4px, lighten(@shadow-color, 10%));
        }

        .thumb-pressed
        {
            color: @brand-color;
        }
    }

    .play-button
    {
        width: 52px;
        height: 52px;
        .border-radius(50px);
        font-size: 25px;
    }

    .thumb-down-button, .thumb-up-button
    {
        border-bottom-left-radius: 2px;
    }

    .next-song-button, .song-request-button
    {
        border-bottom-right-radius: 2px;
    }

    .trackbar-panel
    {
        color: @text-color-light;
        font-size: 10px;
        display: inline-block;
        position: relative;
        top: -7px;

        .trackbar
        {
            width: 250px;
            height: 2px;
            background-color: @brand-off-color-dark;
            display: inline-block;
            vertical-align: middle;
            margin-left: 5px;
            margin-right: 5px;
        }
    }

    .current-song-info
    {
        color: white;
        text-align: right;
        font-size: 14px;
        line-height: 17px;

        .name
        {
            font-weight: bold;
        }

        .album, .artist
        {
        }

        .album-art
        {
            margin-left: 10px;
            width: 50px;
            height: 50px;
            float: right;
            font-family: 'Lucida Sans';
            margin-right: 5px;
        }
    }
}

.title {
    &:first-letter
    {
        font-size: 82px;
    }

    cursor: default;
    margin: -10px 0 0 10px;
    color: @text-color-light;
    font-size: 42px;
    line-height: 82px;
    padding: 0 5px 0 10px;
    .stylish-font();
}

#songRequestModal
{
    #song-request-textbox
    {
        height: 28px;
        margin-left: 20px;
        margin-top: 10px;
        width: 90%;
        font-size: 22px;
        .stylish-font();
    }

    #song-request-drop-down 
    {
        background-color: ghostwhite;
        max-height: 250px;
        overflow: auto;
        width: 90%;
        margin-left: 20px;
        .box-shadow(2px 2px 3px @shadow-color);
    }

    .song-request-match
    {
        cursor: default; 
        .stylish-font();
        height: 64px;
        margin: 5px;
        font-size: 20px;

        &:hover
        {
            background-color: @brand-color-light;
            color: @text-color;
        }

        img
        {
            height: 48px;
            width: 48px;
            margin-top: 8px;
            margin-left: 8px;
            margin-right: 5px;
            .box-shadow(2px 2px 2px @shadow-color);
        }

        .info
        {
            vertical-align: middle;
            display: inline-block;
            height: 48px;
        }
    }

    .selected-song-request
    {
        cursor: default;
        .stylish-font();
        font-size: 20px;
        height: 64px;
        margin: 5px;

        img
        {
            height: 48px;
            width: 48px;
            margin-top: 8px;
            margin-left: 8px;
            margin-right: 5px;
            .box-shadow(2px 2px 2px @shadow-color);
        }
    }


    #request-current-song-button
    {
        text-decoration: none;
        font-size: 24px;
        height: 64px;
        width: 256px;
        margin-left: auto;
        margin-right: auto;
        margin-top: 4%;
        position: relative;
        text-align: center;
        vertical-align: middle;
        background-color: @brand-color-light;
        cursor: pointer;
        .box-shadow(2px 2px 3px silver);

        &:hover
        {
            background-color: @brand-color-light;

            a
            {
                color: @text-color-light;
            }
        }

        a
        {
            color: @text-color-light;
            line-height: 64px;
            text-decoration: none;
            .stylish-font();
        }
    }
}

.main-content
{
    @content-height: 618px;
    @content-right-pane-width: 480px;

    margin-top: 20px;
    width: 700px;
    height: @content-height;
    margin-left: auto;
    margin-right: auto;

    .now-playing-header
    {
        background-color: @brand-color-light;
        height: 30px;
        border-top-left-radius: 10px;
        border-top-right-radius: 10px;

        .item
        {
            color: @text-color-light;
            float: left;
            padding-left: 20px;
            margin-top: 5px;
            cursor: pointer;

            &:hover
            {
                color: white;
                text-decoration: underline;
            }

            span
            {
                margin-left: 5px;
            }
        }
    }

    .station-pane
    {
        background-color: @brand-background;
        height: @content-height;
        border-bottom-left-radius: 10px;
        padding-top: 10px;

        .station-item
        {
            cursor: pointer;
            font-size: smaller;
            padding-left: 30px;
            padding-top: 2px;
            padding-bottom: 2px;
            color: @brand-color;

            .icon-caret-right
            {
                display: none;
                margin-top: 5px;
            }

            &:hover
            {
                background-color: @brand-off-color-light;

                .icon-caret-right
                {
                    display: inline-block;
                }
            }
        }
    }

    .album-art-pane
    {
        height: 250px;
        background-color: @brand-color;
        .box-shadow(inset, 0, 0, 100px, black);
        margin-left: 0;
        white-space: nowrap;
        overflow-x: hidden;
        direction: rtl;

        .song-tile
        {
            display: inline-block;
            margin-right: -220px;
        }

        .album-art
        {
            margin-right: 10px;
            margin-left: 10px;
            margin-top: 30px;
            width: 200px;
            height: 200px;
            -webkit-box-shadow: 0 0 16px 4px lighten(@brand-color-light, 15%);
            box-shadow: 0 0 16px 4px lighten(@brand-color-light, 15%);
            -moz-transition: box-shadow .5s linear;
            -o-transition: box-shadow .5s linear;
            -webkit-transition: box-shadow .5s linear;
            transition: box-shadow .5s linear;

            &:hover
            {
                -webkit-box-shadow: 0 0 8px 4px @brand-off-color;
                box-shadow: 0 0 8px 4px @brand-off-color;
            }
        }
    }

    .album-art-info-pane
    {
        @shared-background-color: @brand-background;

        height: 70px;
        background-color: @shared-background-color;
        margin-left: 0;
        position: relative;

        .group
        {
            float: right;
            padding-right: 10px;
            text-align: right;
            margin-top: 5px;
        }

        .prefix
        {
            color: gray;
            font-size: smaller;
        }

        .name
        {
            color: @text-color;
            font-weight: bold;
        }

        .album, .artist
        {
            color: @text-color;
            font-size: 13px;
        }

        i
        {
            color: @shared-background-color;
            font-size: 120px;
            position: absolute;
            top: -80px;
            left: 350px;
        }
    }

    .buy-share-pane
    {
        background-color: @brand-background;
        height: 48px;
        margin-left: 0;

        .group
        {
            float: right;
            padding-top: 10px;
        }
    }

    .song-info-pane
    {
        background-color: @brand-background;
        padding-top: 10px;
        padding-left: 20px;
        height: 250px;
        border-bottom-right-radius: 10px;
        margin-left: 0;

        hr 
        {
            border-color: @brand-color;
            box-shadow: 0 0 10px 1px @brand-off-color;
        }

        .header
        {
            font-weight: bold;
            color: @text-color;
        }

        .no-lyrics
        {
            font-style: italic;
            color: gray;
        }

        .lyrics
        {
            color: gray;
            font-size: smaller;
            white-space: pre;
            max-height: 40px;
            -ms-text-overflow: ellipsis;
            -o-text-overflow: ellipsis;
            text-overflow: ellipsis;
            overflow: hidden;
        }

        .artist-info
        {
            .bio
            {
                font-size: smaller;
                color: gray;
                font-weight: normal;
                max-height: 40px;
                -ms-text-overflow: ellipsis;
                -o-text-overflow: ellipsis;
                text-overflow: ellipsis;
                overflow: hidden;
            }
        }

        .genres
        {
            font-weight: bold;
            color: @text-color;
            max-height: 60px;
            overflow: hidden;

            .artist
            {
                display: block;
                font-weight: normal;
                font-size: small;
            }
        }
    }
}

.full-artist-bio, .full-lyrics
{
    font-family: arial, 'Helvetica Neue', helvetica, sans-serif;
    white-space:pre-line;
    font-size: 14px;
    padding: 10px;
    color: gray;
}